package Modelo;

import java.io.Serializable;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;

import org.hibernate.validator.constraints.NotEmpty;

/** Classe Representa a tabela Login no banco de dados
 * @author Kevin Jelson
 * @version 1.0
 * @since Release 19/11/2014
 */

@NamedQuery(name = "Login.pesquisarPorUsuarioSenha", query = "SELECT l FROM Login l WHERE l.usuario=:pUsuario AND l.senha=:pSenha")

@Entity
public class Login implements Serializable {

	@Id
	@GeneratedValue
	private long Id;
	
	@NotEmpty(message = "Por favor, preencha este campo")
	@Column(unique=true, nullable=false)
	private String usuario;
	
	@NotEmpty(message = "Por favor, preencha este campo")
	@Column(nullable=false)
	private String senha;
	
	@Column(nullable=false)
	@Enumerated(EnumType.STRING)
	private TipoUsuario tipoUsuario;
	
	@OneToOne(cascade=CascadeType.ALL)
	private DadosPessoais dadosPessoais;

	public long getId() {
		return Id;
	}

	public String getUsuario() {
		return usuario;
	}

	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public DadosPessoais getDadosPessoais() {
		return dadosPessoais;
	}

	public void setDadosPessoais(DadosPessoais dadosPessoais) {
		this.dadosPessoais = dadosPessoais;
	}

	public TipoUsuario getTipoUsuario() {
		return tipoUsuario;
	}

	public void setTipoUsuario(TipoUsuario tipoUsuario) {
		this.tipoUsuario = tipoUsuario;
	}
	
}
